<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/* Js中的数组长度是可变的 */
			//定义一个指定长度的数组
			let arr = new Array(3);
			//动态赋值
			arr[0] = 1;
			arr[1] = 'a'; /* 在JS中''和""都是字符串，在ES6中新增了一个反引号，
							ESC键的下面反引号，可以实现多行编辑 */
			arr[2] = `
				<div>
					第三个元素
				</div>
			`;
			/* arr[2] = '<div>' + 
					'第三个元素' + 
					'</div>' */
			console.log(arr);
			//toString()
			console.log(arr.toString());
			//自定义实现toString()效果
			console.log(arr.join("-"));
			let arr1 = [];
			arr1[0] = 2;
			//concat就是将arr1数组的元素都添加到arr，组成一个新的数组
			console.log(arr.concat(arr1));
			//数组的增删改查
			/* 增
				push(值...)：在编程中...便是可变类型，长度固定可变，本质上就是一个数组
				unshift:在顶部添加
				splice(index, deleteCount, addItem)：可以在指定位置index添加addItem,deleteCount删除的个数
			 */
			/* 删
				delete arr[索引]；删除指定索引的元素，如果没有索引，删除整个数组
				splice()
				pop
			 */
			/* 改
				splice()
			 */
			arr.push("b",3);
			console.log("--------------");
			console.log(arr.toString());
			arr.unshift("c",4);
			console.log(arr.toString());
			arr.splice(arr.length,0,"d",5);//在底部
			console.log(arr.toString());
			console.log(arr.length);
			//删除
			delete arr[1];//只是清除元素的值，但数组的长度不变
			console.log(arr.toString());
			console.log(arr.length);
			console.log(arr.pop());//删除最后一个，并返回删除的值
			console.log(arr.toString());
			console.log(arr.length);
			console.log(arr.splice(2,1));//删除第一个，并返回删除的值
			console.log(arr.toString());
			console.log(arr.length);
			
			//改
			console.log(arr.splice(2,1,"haha"));//
			console.log(arr.toString());
			console.log(arr.length);
		</script>
	</body>
</html>
